caeonsfandomcom-20200215-history
Directory Structure
Overview The Unreal Engine 3 directory structure was designed to allow multiple games sharing the same code to coexist side by side. The idea is to have one centralized code base to which additional game-specific modules can be appended. In addition to the code base, other things such as tools and documentation are often shared amongst the projects. For content, the base game engine sits along side any game-specific content. In the past the main areas of conflict have been: *Localization files *Configuration files *Script files *Log files *Content (maps, packages) - Shared and Game-specific *Binaries - Shared and Game-specific *Game specific extensions (e.g. for maps) and protocols *Lots of hard coded names and assumptions in Unreal Engine 3 Binaries All bit independent (managed code compiled as 'Any CPU') binaries are stored here with their associated pdb files. There are also forwarding executables for the games so commandlets can be run from this folder; they run the default native version. ActorX The dynamic link libraries used by ActorX to export from 3D content creation packages such as Max or Maya. FaceFXPlugins The plug in for FaceFX for 3D content creation packages such as Max or Maya. GFx Tools provided by ScaleForm to assist with Flash creation for Unreal Engine 3. InstallData Various files used to create an installable package with UnSetup reside here, such as EULA's, icons, etc. IPhone Various files used for iOS development in Unreal Engine 3. Redist Redistribution installers to ensure that all required packages are installed on the local machine. SpeedTreeModeler The Speed Tree content creation package which allows you create SpeedTrees for UDK. SwarmCache Cache used by Swarm when compiling maps. Win32 All x86 binaries are stored here, with their associated pdb files. The debug versions are prefixed with Debug- and the shipping versions are prefixed with ShippingPC-. Editor The managed dynamic link libraries for Unreal Editor. UserCode The dynamic link libraries created by UDK developers which is able to be called from Unrealscript. Win64 All x64 binaries are stored here, with their associated pdb files. The debug versions are prefixed with Debug- and the shipping versions are prefixed with ShippingPC-. Editor The managed dynamic link libraries for Unreal Editor. Windows The tools dynamic link libraries that allows Windows to be used with ConsoleInterface (and hence UnrealFrontend and UnrealConsole) resides here with the latest version of UE3Redist. Development All non content-related development is centralized in the Development directory. Intermediate All temporary files used to compile executables (e.g. object files) are stored here. Src All source code is located in the Src directory. Contained within are directories that represent the modules that make up Unreal Engine 3, as well as examples of creating game-specific modules. Game-specific directories (e.g. UTGame) There will be one directory for each game project, including the base Engine. For each game project, including the base Engine, there will be one or more directories that contain elements specific to that project. Autosaves Unreal Editor auto saved maps, package back ups and PIE maps are saved here. Build Any game specific files required to compile or used by the build system (such as DVD layouts). Config Sharing a base set of settings (render and windowing settings, base "WASD" input, ...) and other engine settings that rarely need game specific tweaking is accommodated by having a set of root configuration files reside in the Engine\Config directory. These files, with the .ini extension, are BaseEngine.ini, BaseEditor.ini, BaseGame.ini and BaseInput.ini with configuration options split accordingly. These base configuration files are referenced by the respective per game/mod default INIs like DefaultEngine.ini, DefaultEditor.ini, DefaultGame.ini and DefaultInput.ini. Each of these INI files reside in the game specific configuration directory - "GameName"Game\Config. On initialization, the engine tries to locate "GameName"Game\Config\"GameName"*.ini for Engine, Editor, Game and Input inis and will create a new version of the respective files based on the defaults contain in Default*.ini file's Configuration.BasedOn field, recursively searching until a root ini has been found. Upon finding the INI file, it then merge settings bottom up. The engine has special support for merging ini files by treating lines starting with `+' or `-` differently. The default action is to replace existing keys, `+' tells the engine to append which is useful for expanding TArrays and `-` will remove a key/value pair defined in the base ini. Content The engine has a set of known file extensions (Core.System.Extensions, by default "u" and "upk") to satisfy resource dependencies. It recursively searches the configured paths (Core.System.Paths) defaulting to "Engine\Content" folder. Flash Flash development files reside here for easy importing. Localization The engine looks for localized text files in a configurable selection of paths (Core.System.LocalizationPaths, defaulting to "Engine\Localization"). When localizing a resource, it first looks in the currently configured language localization file. If it fails to find a localized version of that resource, it then looks for an entry in the international localization file. Logs Log files are created by looking at the current executable's base name (that is the executable name without the potential "DEBUG-" prefix) and prefixing it with "GameName"Game\Logs. Movies Encoded movies (e.g. with Bink) reside here. They are separated out of content as they can be large. ScreenShots All screen shots that are taken in Unreal Editor or Unreal Engine are stored here. Script Like regular packages, script files have the ability to reside in any subdirectory of directories configured in the Core.System.Paths array. For editing simplicity, the script compiler requires all files built in a single pass to reside in the directory specified by EditPackagesOutPath and looks at the EditPackages array for packages to compile with source found in the EditPackagesInPath folder (all in Editor.EditorEngine section). ScriptFinalRelease Script packages compiled with the -final_release option Splash All splash screen images are stored here. Additional Considerations Useful information Configuration file examples Snippets from BaseEngine.ini (Engine) URL Protocol=unreal Name=Player Map=Index.ue3 LocalMap=Entry.upk MapExt=ue3 Core.System Paths=..\Engine\Content LocalizationPaths=..\Engine\Localization Extensions=upk Extensions=ue3 Extensions=u Editor.EditorEngine AutoSaveDir=..\Engine\Content\Maps\Autosaves EditPackagesInPath=..\Development\Src EditPackages=Core EditPackages=Engine EditPackages=Editor EditPackages=UnrealEd EditPackages=SequenceObjects EditPackages=GamePlay EditPackages=WarfareGame EditPackages=SampleNativePackage D3DDrv.D3DRenderDevice ShaderPath=..\Engine\Shaders Snippets from DefaultEngine.ini (ExampleGame) Configuration BasedOn=..\Engine\Config\BaseEngine.ini Core.System +Paths=..\ExampleGame\Content +Paths=..\ExampleGame\Script +LocalizationPaths=..\ExampleGame\Localization Editor.EditorEngine EditPackagesOutPath=..\ExampleGame\Script AutoSaveDir=..\ExampleGame\Content\Maps\Autosaves Source Directory layout Category:UE3 Basics